﻿namespace JxcLite.Services;

/// <summary>
/// 系统财务模块服务接口。
/// </summary>
public interface IFinanceService : IService
{
    /// <summary>
    /// 分页查询客户或供应商对账单，通过查询条件Type字段筛选。
    /// </summary>
    /// <param name="criteria"></param>
    /// <returns></returns>
    Task<PagingResult<JxAccountHead>> QueryAccountsAsync(PagingCriteria criteria);

    /// <summary>
    /// 根据账单类型获取默认对账单信息。
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    Task<JxAccountHead> GetDefaultAccountAsync(string type);

    /// <summary>
    /// 批量删除对账单表头及表体信息。
    /// </summary>
    /// <param name="models"></param>
    /// <returns></returns>
    Task<Result> DeleteAccountsAsync(List<JxAccountHead> models);

    /// <summary>
    /// 保存对账单表头信息。
    /// </summary>
    /// <param name="info"></param>
    /// <returns></returns>
    Task<Result> SaveAccountAsync(UploadInfo<JxAccountHead> info);
}